Many organizations, including businesses, governments, and educational institutions utilize computer networks that connect to a plurality of computing devices. The computing devices may be at the same or different locations and may be, for example, computers, servers, etc. Common types of computer networks include local area networks (LANs) and wide area networks (WANs).
In computer networks, one or more intermediate network devices (i.e., switches, bridges, routers, etc.) are often used to connect together the computing devices. Between the various intermediate network devices and the computing devices are wired or wireless connections, referred to herein as links. One or more consecutive links form a communication path that is usable to transfer information (in the form of packets) between the computing devices. Protocols exists to optimize routing among the intermediate devices. In such a configuration, there may be circumstances where congestion conditions exist at a particular intermediate device (e.g., a switch). Congestion avoidance often takes the form of back off algorithms and prioritization; however, these do not adequately address leaf and spine networks.